// 封装 axios
import axios from'axios'
const instance = axios.create({
    baseURL:"/api"
})

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // console.log("请求拦截器");
    // 一般会在这里统一携带token(登录的凭证) 
    let token = localStorage.getItem("x-auth-token")
    if(token) {
      config.headers["x-auth-token"] = token
    }
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // console.log("响应拦截器");
    // 统一对返回的数据进行二次处理.
    // 统一处理错误信息 (就不需要再每个组件中再判断不为0的情况)
    // 微信400 和407不输入统一的错误,需要正常返回data 数据
    if(response.data.code!==0 && response.data.code!=400 && response.data.code!=407) {
      alert("[拦截器]" + response.data.message)
      return;
    }
    // 对响应数据做点什么
    return response.data
    // 函数默认返回 underfined
    // return;返回underfined
    // return response;
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }) 
  

// 导出instance
export default instance 